home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume22 / nn6.4 / part03 < prev    next >
Encoding:
Internet Message Format  |  1990-06-07  |  54.2 KB

  1. Subject:  v22i038:  NN Newsreader, release 6.4, Part03/21
  2. Newsgroups: comp.sources.unix
  3. Approved: rsalz@uunet.UU.NET
  4. X-Checksum-Snefru: a72abfdc 479e02b2 d2851bdd f272ba25
  5.  
  6. Submitted-by: "Kim F. Storm" <storm@texas.dk>
  7. Posting-number: Volume 22, Issue 38
  8. Archive-name: nn6.4/part03
  9.  
  10. #! /bin/sh
  11. # This is a shell archive.  Remove anything before this line, then feed it
  12. # into a shell via "sh file" or similar.  To overwrite existing files,
  13. # type "sh file -c".
  14. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  15. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  16. # Contents:  man/nn.1.C pack_name.c
  17. # Wrapped by storm@texas.dk on Sun May  6 18:19:20 1990
  18. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  19. echo If this archive is complete, you will see the following message:
  20. echo '          "shar: End of archive 3 (of 22)."'
  21. if test -f 'man/nn.1.C' -a "${1}" != "-c" ; then 
  22.   echo shar: Will not clobber existing file \"'man/nn.1.C'\"
  23. else
  24.   echo shar: Extracting \"'man/nn.1.C'\" \(41683 characters\)
  25.   sed "s/^X//" >'man/nn.1.C' <<'END_OF_FILE'
  26. X.\" BEGINPART C
  27. X.SH CATCH UP
  28. XIf you have not read news for some time, there are probably more news
  29. Xthan you can cope with.  Using the option \-\fBa0\fP \fInn\fP will put
  30. Xyou into \fBcatch-up mode\fP.
  31. X.LP
  32. XThe first question you will get is whether to catch up interactively
  33. Xor automatically.  If you instruct \fInn\fP to catch up automatically,
  34. Xit will simply mark all articles in all groups as read, thus bringing
  35. Xyou \fIcompletely up-to-date\fP.
  36. X.LP
  37. XIf you choose the interactive mode, \fInn\fP will locate all groups
  38. Xwith unread articles, and for each group it will prompt you for an
  39. Xaction to take on the group.  An action is selected using a single
  40. Xletter followed by \fBreturn\fP.  The following actions are available:
  41. X.TP
  42. X.B y
  43. XMark all articles as read in current group.
  44. X.TP
  45. X.B n
  46. XDo not update group (this is the default action if you just hit
  47. X\fBreturn\fP).
  48. X.TP
  49. X.B r
  50. XEnter reading mode to read the group.
  51. X.TP
  52. X.B U
  53. XUnsubscribe to the group.
  54. X.TP
  55. X.B ?
  56. XGive a list of actions.
  57. X.TP
  58. X.B q
  59. XQuit.
  60. XWhen you quit, \fInn\fP will ask whether the
  61. Xrest of the groups should be updated unconditionally or whether they
  62. Xshould remain unread.
  63. X.SH VARIABLES AND OPTIONS
  64. XIt is possible to control the behaviour of \fInn\fP through the
  65. Xsetting (and unsetting) of the variables described below.  There are
  66. Xseveral ways of setting variables:
  67. X.br
  68. X\- Through command line options when \fInn\fP is invoked.
  69. X.br
  70. X\- Through global \fBset\fP commands in the init file.
  71. X.br
  72. X\- Through \fBset\fP or \fBlocal\fP commands executed from entry macros.
  73. X.br
  74. X\- Through the \fB:set\fP extended command when you run \fInn\fP.
  75. X.LP
  76. XThere are four types of variables:
  77. X.br
  78. X\- Boolean variables
  79. X.br
  80. X\- Integer variables
  81. X.br
  82. X\- String variables
  83. X.br
  84. X\- Key variables
  85. X.LP
  86. XBoolean variables control a specific function in \fInn\fP, e.g.
  87. Xwhether the current time is shown in the prompt line.  A boolean
  88. Xvariable is set to
  89. X.B true
  90. Xwith the command
  91. X.br
  92. X    \fBset\fP \fIvariable\fP
  93. X.br
  94. Xand it is set to
  95. X.B false
  96. Xwith either of the following (equivalent) commands:
  97. X.br
  98. X    \fBunset\fP \fIvariable\fP
  99. X.br
  100. X    \fBset no\fP\fIvariable\fP
  101. X.LP
  102. XYou can also toggle the value of a boolean variable using the command:
  103. X.br
  104. X    \fBtoggle\fP \fIvariable\fP
  105. X.LP
  106. XFor example:
  107. X.br
  108. X    \fBset\fP time
  109. X.br
  110. X    \fBunset\fP time
  111. X.br
  112. X    \fBset\fP notime
  113. X.br
  114. X    \fBtoggle\fP time
  115. X.LP
  116. XInteger variables control an amount e.g. the size of the preview
  117. Xwindow, or the maximum number of articles to read in each group.  They
  118. Xare set with the following command:
  119. X.br
  120. X    \fBset\fP \fIvariable value\fP
  121. X.br
  122. XIn some cases, not setting an integer value has a special meaning,
  123. Xfor example, not having a minimal preview window or reading all
  124. Xarticles in the groups no matter how many there are.  The special
  125. Xmeaning can be re-established by the following command:
  126. X.br
  127. X    \fBunset\fP \fIvariable\fP
  128. X.br
  129. XFor example:
  130. X.br
  131. X    \fBset\fP window 7
  132. X.br
  133. X    \fBunset\fP limit
  134. X.br
  135. X.LP
  136. XString variables may specify directory names, default values for
  137. Xprompts, etc.  They are set using the command
  138. X.br
  139. X    \fBset\fP \fIvariable string\fP
  140. X.br
  141. XExcept for file and directory names, the
  142. X.I string
  143. Xvalue starts at the first non-blank character after the variable name
  144. Xand continues to the end of the line \fIincluding all trailing
  145. Xblanks on the line\fP!
  146. X.LP
  147. XKey variables control the keys used to control special functions
  148. Xduring user input such as line editing and completion.  They are set
  149. Xusing the command
  150. X.br
  151. X    \fBset\fP \fIvariable key-name\fP
  152. X.br
  153. X.LP
  154. XThe current variable settings can be shown with the
  155. X.B :set
  156. Xcommand without arguments.
  157. X.LP
  158. XVariables are global by default, but a local instantiation of the
  159. Xvariable can be created using the \fB:local\fP command.  The local
  160. Xvariable will overlay the global variable as long as the current group
  161. Xis active, i.e. the global variable will be used again when you exit
  162. Xthe current group.  The initial value of the local variable will be
  163. Xthe same as the global variable, unless a new value is specified in
  164. Xthe \fB:local\fP command:
  165. X.sp 0.5v
  166. X    \fB:local\fP \fIvariable\fP [ \fIvalue\fP ]
  167. X.sp 0.5v
  168. X.LP
  169. XThe following variables are available:
  170. X.TP
  171. X\fBalso-subgroups\fP    (boolean, default true)
  172. XWhen set, a group name in the presentation sequence will also cause
  173. Xall the subgroups of the group to be included, for example, comp.unix
  174. Xwill also include comp.unix.questions, etc.  When \fBalso-subgroups\fP
  175. Xis not set, subgroups are only included if the group name is followed
  176. Xby a `.' in which case the main group is \fInot\fP included, i.e.
  177. X`comp.unix' is not included when `comp.unix.' is specified in the
  178. Xpresentation sequence, and vice-versa.  Following a group name by an
  179. Xasterisk `*', e.g. comp.unix*, will include the group as well as all
  180. Xsubgroups independently of the setting of \fBalso-subgroups\fP.
  181. X.TP
  182. X\fBappend-signature-mail\fP    (boolean, default false)
  183. XWhen false, it is assumed that the .signature file is automatically
  184. Xappended to responses sent via E-mail.  If true, .signature will be
  185. Xappended to the letter (see query-signature).
  186. X.TP
  187. X\fBappend-signature-post\fP    (boolean, default false)
  188. XWhen false, it is assumed that the .signature file is automatically
  189. Xappended to posted articles.  If true, .signature will explicitly be
  190. Xappended to posted articles (see query-signature).
  191. X.TP
  192. X\fBattributes\fP \fIsymbols\fP    (string, default ....)
  193. XEach element in this string represents a symbol used to represent an
  194. Xarticle attribute when displayed on the screen.  See the section on
  195. XMarking Articles and Attributes.
  196. X.TP
  197. X\fBauto-junk-seen\fI    (boolean, default true)
  198. XWhen set, articles which have the \fIseen attribute\fP (,) will be marked
  199. Xread when the current group is left.  If not set, these articles will
  200. Xstill be either unread or marked seen the next time the group is
  201. Xentered (see also \fBconfirm-junk-seen\fP and \fBretain-seen-status\fI).
  202. X.TP
  203. X\fBauto-preview-mode\fP        (boolean, default false)
  204. XEnables \fIAuto Preview Mode\fP.  In this mode, selecting an article
  205. Xon the menu using its article id (letter a-z) will enter preview mode
  206. Xon that article immediately.  Furthermore, the `n' {\fBnext-article\fP}
  207. Xcommand will preview the next article on the menu only if it has the
  208. Xsame subject as the current article; otherwise, it will return to the
  209. Xmenu with the cursor placed on the next article.  The \fBcontinue\fP
  210. Xcommand at the end of the article and the `=' {\fBgoto-menu\fP}
  211. Xreturns to the menu immediately as usual.
  212. X.TP
  213. X\fBbackup\fP    (boolean, default true)
  214. XWhen set, a copy of the initial .newsrc and select files will save be
  215. Xthe first time they are changed.  \fInn\fP remembers the initial
  216. Xcontents of these files internally, so the backup variable can be set
  217. Xany time if not set on start-up.
  218. X.TP
  219. X\fBbackup-suffix\fP \fIsuffix\fP    (string, default ".bak")
  220. XThe suffix appended to file names to make the corresponding backup
  221. Xfile name (see \fBbackup\fP).
  222. X.TP
  223. X\fBbug-report-address\fP \fIaddress\fP    (string, default nn-bugs@dkuug.dk)
  224. XThe mail address to which bug reports created with the \fB:bug\fP
  225. Xcommand are sent.
  226. X.TP
  227. X\fBcase-fold-search\fP        (boolean, default true)
  228. XWhen set, string and regular expression matching will be case
  229. Xindependent.  This is related to all commands matching on names or
  230. Xsubjects, except in connection with auto-kill and auto-select where
  231. Xthe individual kill file entries specifies this property.
  232. X.TP
  233. X\fBcollapse-subject\fP \fIoffset\fP    (integer, default 25)
  234. XWhen set (non-negative), subject lines which are too long to be
  235. Xpresented in full on the menus will be "collapsed" by removing a
  236. Xsufficient number of characters from the subject starting at the given
  237. X\fIoffset\fP in the subject.  This is useful in source groups where
  238. Xthe "Part (01/10)" string sometimes disappears from the menu.  When
  239. Xnot set (or negative), the subjects are truncated.
  240. X.TP
  241. X\fBcolumns\fP \fIcol\fP    (integer, default screen width)
  242. XThis variable contains the screen width i.e. character positions per
  243. Xline.
  244. X.TP
  245. X\fBcomp1-key\fP \fIkey\fP    (key, default \fBspace\fP)
  246. XThe key which gives the first/next completion, and the default value
  247. Xwhen \fInn\fP is prompting for a string, e.g. a file name.
  248. X.TP
  249. X\fBcomp2-key\fP \fIkey\fP    (key, default \fBtab\fP)
  250. XThe key which ends the current completion and gives the first
  251. Xcompletion for the next component
  252. Xwhen \fInn\fP is prompting for a string, e.g. a file name.
  253. X.TP
  254. X\fBcompress\fP        (boolean, default false)
  255. XThis variable controls whether text compression (see the
  256. X\fBcompress\fP command) is turned on or off when an article is
  257. Xshown.  The compression is still toggled for the current article with
  258. Xthe \fBcompress\fP command key.
  259. X.TP
  260. X\fBconfirm-append\fP        (boolean, default false)
  261. XWhen set, \fInn\fP will ask for confirmation before appending an
  262. Xarticle to an existing file (see also \fBconfirm-create\fP).
  263. X.TP
  264. X\fBconfirm-auto-quit\fP        (boolean, default false)
  265. XWhen set, \fInn\fP will ask for confirmation before quitting after
  266. Xhaving read the last group.  If not confirmed, \fInn\fP will recycle
  267. Xthe presentation sequence looking for groups that were skipped with
  268. Xthe `N' {\fBnext-group\fP} command.  But it will not look for new
  269. Xarticles arrived since the invokation of \fInn\fP.
  270. X.TP
  271. X\fBconfirm-create\fP        (boolean, default true)
  272. XWhen set, \fInn\fP will ask for confirmation before creating a new
  273. Xfile or directory when saving or unpacking an article (see also
  274. X\fBconfirm-append\fP).
  275. X.TP
  276. X\fBconfirm-entry\fP        (boolean, default false)
  277. XWhen set, \fInn\fP will ask for confirmation before entering a group
  278. Xwith more than \fBconfirm-entry-limit\fP unread articles (on the first
  279. Xmenu level).  It is useful on slow terminals if you don't want to wait
  280. Xuntil \fInn\fP has drawn the first menu to be able to skip the group.
  281. X  Answering no to the "Enter?" prompt will cause \fInn\fP to skip to
  282. Xthe next group without marking the current group as read.  If you
  283. Xanswer by hitting \fBinterrupt\fP, \fInn\fP will ask the question
  284. X"Mark as read?" which allows you to mark the current group as read
  285. Xbefore going to the next group.  If this second question is also
  286. Xanswered by hitting \fBinterrupt\fP, \fInn\fP will quit immediately.
  287. X.TP
  288. X\fBconfirm-entry-limit\fP \fIarticles\fP    (integer, default 0)
  289. XSpecifies the minimum number of unread articles in a group for which
  290. Xthe \fBconfirm-entry\fP functionality is activated.
  291. X.TP
  292. X\fBconfirm-junk-seen\fP        (boolean, default false)
  293. XWhen set, \fInn\fP will require confirmation before marking seen
  294. Xarticles as read when \fBauto-junk-seen\fP is set.
  295. X.TP
  296. X\fBconfirm-messages\fP        (boolean, default false)
  297. XIn some cases, \fInn\fP will sleep one second (or more) when it has shown a
  298. Xmessage to the user, e.g. in connection with macro debugging.  Setting
  299. X.B confirm-messages
  300. Xwill cause \fInn\fP to
  301. X\fIwait\fP for you to confirm all messages by hitting any
  302. Xkey.  (It will show the symbol <> to indicate that it is awaiting
  303. Xconfirmation.)
  304. X.TP
  305. X\fBcross-filter-seq\fP        (boolean, default true)
  306. XWhen set, cross posted articles will be presented in the first
  307. Xpossible group, i.e. according to the current presentation sequence
  308. X(\fIcross\fP-post \fIfilter\fPing on \fIseq\fPuence).  The article is
  309. Xautomatically marked read in the other cross posted groups unless you
  310. Xunsubscribe to the first group in which it was shown before reading
  311. Xthe other groups.  Likewise, it is sufficient to leave the article
  312. Xunread in the first group to keep it for later handling.
  313. X  If not set, cross-postings are shown in the first group occurring on
  314. Xthe Newsgroups: line which the user subscribes to (i.e. you let the
  315. Xposter decide which group is most appropriate to read his posting).
  316. X.TP
  317. X\fBcross-post\fP        (boolean, default false)
  318. XNormally, \fInn\fP will only show cross-posted articles in the first
  319. Xsubscribed group on the Newsgroups: line.  When
  320. X.B cross-post
  321. Xis set, \fInn\fP will show cross-posted articles in all subscribed
  322. Xgroups to which they are posted.
  323. X.TP
  324. X\fBdata-bits\fP \fIbits\fP    (integer, default 7)
  325. XWhen set to 7, \fInn\fP will display characters with the 8th bit set
  326. Xusing a meta-notation \fBM-\fP\fI7bit-char\fP.  If set to 8, these
  327. Xcharacters are sent directly to the screen (unless \fBmonitor\fP is
  328. Xset).
  329. X.TP
  330. X\fBdate\fP        (boolean, default true)
  331. XIf set \fInn\fP will show the article posting date when articles are
  332. Xread.
  333. X.TP
  334. X\fBdebug\fP \fImask\fP    (integer, default 0)
  335. XLook in the source if you are going to use this.
  336. X.TP
  337. X\fBdecode-header-file\fP \fIfile\fP    (string, default "Decode.Headers")
  338. XThe name of the file in which the header and initial text of articles
  339. Xdecoded with the \fB:decode\fP command is saved.  Unless the file name
  340. Xstarts with a `/', the file will be created in the same directory as
  341. Xthe decoded files.  The information is not saved if this variable is
  342. Xnot set.
  343. X.TP
  344. X\fBdecode-skip-prefix\fP \fIN\fP    (integer, default 2)
  345. XWhen non-null, the \fB:decode\fP command will automatically skip
  346. X\fIupto\fP \fIN\fP characters at the beginning of each line to find
  347. Xvalid uuencoded data.  This allows \fInn\fP to automatically decode
  348. X(multi-part) postings which are both uuencoded and packed with shar.
  349. X.TP
  350. X\fBdefault-distribution\fP \fIdistr\fP    (string, default not set)
  351. XThe distribution to use as the default suggestion when posting
  352. Xarticles using the \fBpost\fP command.  If it is not set, the
  353. Xfirst component of the group name is used as the suggested
  354. Xdistribution, e.g. `comp' when posting to comp.whatever.
  355. X.TP
  356. X\fBdefault-save-file\fP \fIfile\fP    (string, default +$F)
  357. XThe default save file used in quick save mode.  It can also be
  358. Xspecified using the abbreviation "+" as the file name in normal save
  359. Xmode.
  360. X.TP
  361. X\fBdelay-redraw\fP        (boolean, default false)
  362. XNormally, \fInn\fP will redraw the screen after extended
  363. Xcommands (:cmd) that clear the screen.  When \fBdelay-redraw\fP is set
  364. X\fInn\fP will prompt for another extended command instead of redrawing
  365. Xthe screen (hit \fBreturn\fP to redraw).
  366. X.TP
  367. X\fBedit-patch-command\fP    (boolean, default true)
  368. XWhen true, the \fB:patch\fP command will show the current
  369. X\fBpatch-command\fP and give you a chance to edit it before applying
  370. Xit to the articles.
  371. X.TP
  372. X\fBedit-print-command\fP    (boolean, default true)
  373. XWhen true, the \fBprint\fP command will show the current \fBprinter\fP
  374. Xcommand and give you a chance to edit it before printing the articles.
  375. XOtherwise the articles are just printed using the current \fBprinter\fP
  376. Xcommand.
  377. X.TP
  378. X\fBedit-response-check\fP    (boolean, default true)
  379. XWhen editing a response to an article, it normally does not have any
  380. Xmeaning to send the initial file prepared by \fInn\fP unaltered, since
  381. Xit is either empty or only contains included material.  When this
  382. Xvariable is set, exiting the editor without having changed the file
  383. Xwill automatically abort the response action without confirmation.
  384. X.TP
  385. X\fBedit-unshar-command\fP    (boolean, default false)
  386. XWhen true, the \fB:unshar\fP command will show the current
  387. X\fBunshar-command\fP and give you a chance to edit it before applying
  388. Xit to the articles.
  389. X.TP
  390. X\fBeditor\fP \fIcommand\fP    (string, default not set)
  391. XWhen set, it will override the current EDITOR environment variable
  392. Xwhen editing responses and new articles.
  393. X.TP
  394. X\fBentry-report-limit\fP \fIarticles\fP    (integer, default 300)
  395. XNormally, \fInn\fP will just move the cursor to the upper left corner
  396. Xof the screen while it is reading articles from the database on
  397. Xentry to a group.  For large groups this may take more than a fraction
  398. Xof a second, and \fInn\fP can then report what it is doing.  If
  399. Xit must read more articles than the number specified by this variable,
  400. X\fInn\fP will report which group and how many articles it is reading.
  401. X.TP
  402. X\fBerase-key\fP \fIkey\fP    (key, default tty erase key)
  403. XThe key which erases the last input character
  404. Xwhen \fInn\fP is prompting for a string, e.g. a file name.
  405. X.TP
  406. X\fBexpert\fP        (boolean, default false)
  407. XIf set \fInn\fP will use slightly shorter prompts (e.g. not tell you
  408. Xthat ? will give you help), and be a bit less verbose in a few other
  409. Xcases (e.g. not remind you that posted articles are not available
  410. Xinstantly).
  411. X.TP
  412. X\fBexpired-message-delay\fP \fIpause\fP    (integer, default 1)
  413. XIf a selected article is found to have been expired, \fInn\fP will
  414. Xnormally give a message about this and sleep for a number of seconds
  415. Xspecified by this variable.  Setting this variable to zero will still
  416. Xmake \fInn\fP give the message without sleeping afterwards.  Setting
  417. Xit to -1 will cause the message not to be shown at all.
  418. X.TP
  419. X\fBflow-control\fP    (boolean, default true)
  420. XWhen set, \fInn\fP will turn on xon/xoff flow-control before writing
  421. Xlarge amounts of text to the screen.  This should guard against
  422. Xlossage of output, but in some network configurations it has had the
  423. Xopposite effect, losing several lines of the output.  This variable
  424. Xis always true on systems with CBREAK capabilities which can do single
  425. Xcharacter reads without disabling flow control.
  426. X.TP
  427. X\fBflush-typeahead\fP    (boolean, default false)
  428. XWhen true, \fInn\fP will flush typeahead prior to reading commands
  429. Xfrom the keyboard.  It will not flush typeahead while reading
  430. Xparameters for a command, e.g. file names etc.
  431. X.TP
  432. X\fBfolder\fP \fIdirectory\fP    (string, default ~/News)
  433. XThe full pathname of the
  434. X.I folder directory
  435. Xwhich will replace the + in folder names.  It will be initialized from
  436. Xthe FOLDER environment variable if it is not set in the
  437. X.I init
  438. Xfile.
  439. X.TP
  440. X\fBfsort\fP        (boolean, default true)
  441. XWhen set, folders are sorted alphabetically according to the subject
  442. X(and age).
  443. XOtherwise, the articles in
  444. Xa folder will be presented in the sequence in which they were saved.
  445. X.TP
  446. X\fBheader-lines\fP \fIlist\fP    (string, no default)
  447. XWhen set, it determines the list of header fields that are shown when
  448. Xan article is read instead of the normal one line header showing the
  449. Xauthor and subject.  See the full description in the section on
  450. XCustomized Article Headers below.
  451. X.TP
  452. X\fBhelp-key\fP \fIkey\fP    (key, default \fB?\fP)
  453. XThe key which ends the current completion and gives a list of possible
  454. Xcompletions for the next component
  455. Xwhen \fInn\fP is prompting for a string, e.g. a file name.
  456. X.TP
  457. X\fBinclude-art-id\fP        (boolean, default false)
  458. XThe first line in a response with included material normally reads
  459. X\&"...somebody... writes:" without a reference to the specific article
  460. Xfrom which the quotation was taken (this is found in the References:
  461. Xline).  When this variable is set, the line will also include the
  462. Xarticle id of the referenced article: "In ...article... ... writes:".
  463. X.TP
  464. X\fBinclude-full-header\fP    (boolean, default false)
  465. XWhen set, the \fBmail\fP (M) command will always include the full
  466. Xheader of the original article.  If it is not set, it only includes
  467. Xthe header when the article is forwarded without being edited.
  468. X.TP
  469. X\fBincluded-mark\fP \fIstring\fP    (string, default ">")
  470. XThis string is prefixed to all lines in the original article that are
  471. Xincluded in a reply or a follow-up.  (Now you have the possibility to
  472. Xchange it, but please don't.  Lines with a mixture of prefixes like
  473. X.br
  474. X   : orig-> <> } ] #- etc.
  475. X.br
  476. Xare very difficult to comprehend.  Let's all use the standard folks!
  477. X(And hack inews if it is the 50% rule that bothers you.)
  478. X.TP
  479. X\fBkeep-unsubscribed\fP        (boolean, default true)
  480. XWhen set, unsubscribed groups are kept in .newsrc.  If not set,
  481. X\fInn\fP will automatically remove all unsubscribed from .newsrc if
  482. X\fBtidy-newsrc\fP is set.  See also \fBunsubscribe-mark-read\fP.
  483. X.TP
  484. X\fBkill\fP        (boolean, default true)
  485. XIf set, \fInn\fP performs automatic kill and selection based on the
  486. X.I kill
  487. Xfile.
  488. X.TP
  489. X\fBkill-key\fP \fIkey\fP    (key, default tty kill key)
  490. XThe key which deletes the current line
  491. Xwhen \fInn\fP is prompting for a string, e.g. a file name.
  492. X.TP
  493. X\fBlayout\fP \fInumber\fP    (integer, default 1)
  494. XSet the menu layout.  The argument must be a number between 0 and 4.
  495. X.TP
  496. X\fBlimit\fP \fImax-articles\fP    (integer, default infinite)
  497. X.I Limit
  498. Xthe maximum number of articles presented in each group to
  499. X.I max-articles.
  500. XThe default is to present
  501. X.I all
  502. Xunread articles no matter how many there are.  Setting this variable,
  503. Xonly the most recent
  504. X.I max-articles
  505. Xarticles will be presented, but all the articles will still be marked
  506. Xas read.  This is useful to get up-to-date quickly if you have not
  507. Xread news for a longer period.
  508. X.TP
  509. X\fBlines\fP \fIlin\fP    (integer, default screen hight)
  510. XThis variable contains the screen hight i.e. number of lines.
  511. X.TP
  512. X\fBlong-menu\fP        (boolean, default false)
  513. XIf set \fInn\fP will not put an empty line after the header line and
  514. Xan empty line before the prompt line; this gives you two extra menu
  515. Xlines.
  516. X.TP
  517. X\fBmacro-debug\fP    (boolean, default false)
  518. XIf set \fInn\fP will trace the execution of all macros.  Prior to the
  519. Xexecution of each command or operation in a macro, it will show the
  520. Xname of the command or the input string or key stroke at the bottom of
  521. Xthe screen.
  522. X.TP
  523. X\fBmail\fP \fIfile\fP    (string, default not set)
  524. X\fIfile\fP must be a full path name of a file.  If defined, \fInn\fP will
  525. Xcheck for arrival of new mail every minute or so by looking at the
  526. Xspecified file.
  527. X.TP
  528. X\fBmail-format\fP    (boolean, default false)
  529. XWhen set, \fInn\fP will save articles in a format that is compatible
  530. Xwith normal mail folders.
  531. X.TP
  532. X\fBmail-header\fP \fIheaders\fP    (string, default not set)
  533. XThe \fIheaders\fP string specifies one or more extra header lines
  534. X(separated by semi-colons `;') which are added to the header of mail
  535. Xsent from \fInn\fP using the \fBreply\fP and \fBmail\fP commands.  For
  536. Xexample:
  537. X.br
  538. X   set mail-header Reply-To: storm@texas.dk
  539. X.br
  540. X.TP
  541. X\fBmail-record\fP \fIfile\fP    (string, default not set)
  542. X\fIfile\fP must be a full path name of a file.  If defined, all replies and
  543. Xmail will be saved in this file in standard
  544. X.I mailbox
  545. Xformat, i.e. you can use you favourite mailer (and \fInn\fP) to look at
  546. Xthe file.
  547. X.TP
  548. X\fBmail-script\fP \fIfile\fP    (string, default not set)
  549. XWhen set, \fInn\fP will use the specified file instead of the standard
  550. X\fIaux\fP script when executing the \fBreply\fP and \fBmail\fP
  551. Xcommands.
  552. X.TP
  553. X\fBmailer\fP \fIshell-command\fP    (string, default REC_MAIL)
  554. XThe program which is invoked by \fInn\fP to deliver a message to the
  555. Xmail transport.  The program will be given a complete mail message
  556. Xincluding a header containing the recipient's address.  See also
  557. X\fBmailer-pipe-input\fP.
  558. X.TP
  559. X\fBmailer-pipe-input\fP        (boolean, default true)
  560. XWhen set, the message to be sent will be piped into the \fBmailer\fP
  561. Xprogram.  Otherwise, the file containing the message will be given as
  562. Xthe first (and only) argument to the \fBmailer\fP command.
  563. X.TP
  564. X\fBmark-overlap\fP    (boolean, default false)
  565. XWhen set, \fInn\fP will draw a line (using the underline capabilities
  566. Xof the terminal if possible) to indicate the end of the overlap (see the
  567. X\fBoverlap\fP variable).
  568. X.TP
  569. X\fBmin-window\fP \fIsize\fP    (integer, default 7)
  570. XWhen the \fBwindow\fP variable is not set, \fInn\fP will clear the
  571. Xscreen to preview an article if there are less than \fIsize\fP unused
  572. Xlines at the bottom of the menu screen.
  573. X.TP
  574. X\fBmmdf-format\fP    (boolean, default false)
  575. XWhen set, \fInn\fP will save articles in MMDF format.
  576. X.TP
  577. X\fBmonitor\fP        (boolean, default false)
  578. XWhen set, \fInn\fP will show
  579. X.I all
  580. Xcharacters in the received messages using a "cat -v" like format.
  581. XOtherwise, only the printable characters are shown (default).
  582. X.TP
  583. X\fBnew-group-action\fP \fIaction\fP    (integer, default 3)
  584. XThis variable controls how new groups are treated by \fInn\fP.  It is
  585. Xan integer variable, and the following values can be used.  Some of
  586. Xthese actions (marked with an *) will only work when
  587. X\fBkeep-unsubscribed\fP is set, since the presence of a group in
  588. X\&.newsrc is the only way to recongnize it as an old group:
  589. X.sp 0.5v
  590. X\fB0\fP)  Ignore groups which are not in \&.newsrc.  This will obviously
  591. Xinclude new groups.
  592. X.sp 0.5v
  593. X\fB1\fP*)  Groups not in \&.newsrc are considered to be new, and are
  594. Xinserted at the beginning of the \&.newsrc file.
  595. X.sp 0.5v
  596. X\fB2\fP*)  Groups not in \&.newsrc are considered to be new, and are
  597. Xappended to the end of the \&.newsrc file.
  598. X.sp 0.5v
  599. X\fB3\fP)  New groups are recognized via a time-stamp saved in the
  600. Xfile \&.nn/LAST and in the database, i.e. it is not dependent on the
  601. Xgroups currently in \&.newsrc.  The new groups are automatically
  602. Xappended to \&.newsrc with subscription.  Old groups not present in
  603. X\&.newsrc will be considered to be unsubscribed.
  604. X.sp 0.5v
  605. X\fB4\fP)  As \fB3\fP, but the user is asked to confirm that the new
  606. Xgroup should be appended to \&.newsrc.  If rejected, the group will not
  607. Xbe appended to \&.newsrc, and thus be regarded as unsubscribed.
  608. X.sp 0.5v
  609. X\fB5\fP)  As \fB4\fP, except that the information is stored in a
  610. Xformat compatible with the \fIrn\fP news reader (\&.rnlast).  This needs
  611. Xto be tested!
  612. X.TP
  613. X\fBnews-header\fP \fIheaders\fP    (string, default not set)
  614. XThe \fIheaders\fP string specifies one or more extra header lines
  615. X(separated by semi-colons `;') which are added to the header of
  616. Xarticles posted from \fInn\fP using the \fBfollow\fP and \fBpost\fP
  617. Xcommands.
  618. X.TP
  619. X\fBnews-record\fP \fIfile\fP    (string, default not set)
  620. XSave file for follow-ups and postings.  Same rules and format as the
  621. X\fBmail-record\fP variable.
  622. X.TP
  623. X\fBnews-script\fP \fIfile\fP    (string, default not set)
  624. XWhen set, \fInn\fP will use the specified file instead of the standard
  625. X\fIaux\fP script when executing the \fBfollow\fP and \fBpost\fP
  626. Xcommands.
  627. X.TP
  628. X\fBnewsrc\fP \fIfile\fP        (string, default "~/.newsrc")
  629. XSpecifies the file used by \fInn\fP to register which groups and
  630. Xarticles have been read.  The default setting corresponds to the
  631. X\&.newsrc file used by other news readers.  Notice that \fInn\fP release
  632. X6.4 \fIdoes allow\fP individual articles to be marked unread, and some
  633. Xarticles marked unread, and thus no longer messes up \&.newsrc for other
  634. Xnews readers!
  635. X.TP
  636. X\fBnntp-cache-dir\fP \fIdirectory\fP    (string, default "~/.nn")
  637. XWhen NNTP is used, \fInn\fP needs to store articles temporarily on
  638. Xdisk.  This variable specifies which directory \fInn\fP will use to
  639. Xhold these files.  The default value may be changed during
  640. Xconfiguration.  This variable can only be set in the init file.
  641. X.TP
  642. X\fBnntp-cache-size\fP \fIsize\fP    (integer, default 10, maximum 10)
  643. XSpecifies the number of temporary files in the nntp cache.  The
  644. Xdefault and maximum values may be changed during configuration.
  645. X.TP
  646. X\fBnntp-debug\fP    (boolean, default false)
  647. XWhen set, a trace of the nntp related traffic is displayed in the
  648. Xmessage line on the screen.
  649. X.TP
  650. X\fBold\fP [\fImax-articles\fP]    (integer, default not set)
  651. XWhen
  652. X.B old
  653. Xis set, \fInn\fP will present (or scan) all (or the last
  654. X\fImax-articles\fP) unread as well as
  655. Xread articles.  While
  656. X.B old
  657. Xis set, \fInn\fP will
  658. X.I never
  659. Xmark any unread articles as read.
  660. X.TP
  661. X\fBorig-to-include-mask\fP \fIN\fP    (integer, default 3)
  662. XWhen replying to an article, \fInn\fP will include some of the header
  663. Xlines which may be used to construct a proper mail address for the
  664. Xposter of the original article.  These addresses are placed on
  665. X\fIOrig-To:\fP lines in the reply header and will automatically be
  666. Xremoved before the letter is sent.  This variable specifies which
  667. Xheaders from the article are included; its value \fIN\fP is the sum of
  668. Xthe following values:
  669. X.br
  670. X    1: \fIReply-To:\fP
  671. X.br
  672. X    2: \fIFrom:\fP
  673. X.br
  674. X    4: \fIPath:\fP
  675. X.TP
  676. X\fBoverlap\fP \fIlines\fP    (integer, default 2)
  677. XSpecifies the number of overlapping lines from one page to the next
  678. Xwhen paging through an article in reading mode.
  679. XThe last line from the previous page
  680. Xwill be underlined if the terminal has that capability.
  681. X.TP
  682. X\fBpager\fP \fIshell-command\fP        (string, default $PAGER)
  683. XThis is the pager used by the \fB:admin\fP command (and \fInnadmin\fP)
  684. Xwhen it executes certain commands, e.g. grepping in the Log file.
  685. X.TP
  686. X\fBpatch-command\fP \fIshell-command\fP    (string, default "patch -p0")
  687. XThis is the command which is invoked by the \fB:patch\fP command.
  688. X.TP
  689. X\fBpreview-continuation\fP \fIcond\fP    (integer, default 12)
  690. XThis variable determines on what terms the following article should be
  691. Xautomatically shown when previewing an article, and the
  692. X\fBnext-article\fP command is used, or \fBcontinue\fP is used at the
  693. Xend of the article.  The following values
  694. Xcan be used:
  695. X.br
  696. X\fB0\fP \- never show the next article (return to the menu).
  697. X.br
  698. X\fB1\fP \- always show the next article (use 'q' to return to the menu).
  699. X.br
  700. X\fB2\fP \- show the next article if it has the same subject as the
  701. Xcurrent article, else return to the menu.
  702. X.br
  703. XThe value should be the \fIsum\fP of two values: one for the action
  704. Xafter using \fBcontinue\fP on the last page of the article, and one
  705. Xfor the action performed when the \fBnext-article\fP command is used
  706. X\fImultiplied by 10\fP.
  707. X.TP
  708. X\fBpreview-mark-read\fP        (boolean, default true)
  709. XWhen set, previewing an article will mark the article as read.
  710. X.TP
  711. X\fBprinter\fP \fIshell-command\fP    (string, default is system dep.)
  712. XThis is the default value for the
  713. X.B print
  714. Xcommand.  It should include an option which prevents the spooler from
  715. Xechoing a job-id or similar to the terminal to avoid problems with
  716. Xscreen handling (e.g. lp -s on System V).
  717. X.TP
  718. X\fBquery-signature\fP        (boolean, default ...)
  719. XWill cause \fInn\fP to require confirmation before appending
  720. Xthe \&.signature file to out-going mail or news if the corresponding
  721. X\fBappend-sig-\fP... variable is set.
  722. X.TP
  723. X\fBquick-count\fP    (boolean, default true)
  724. XWhen set, calculating the total number of unread articles at start-up
  725. Xis done by simple subtracting the first unread article number from the
  726. Xtotal number of articles in each group.  This is very fast, and fairly
  727. Xaccurate but it may be a bit too large.  If not set, each line in
  728. X.newsrc will be interpreted to count every unread article, thus giving
  729. Xa very accurate number.  This variable is also used by \fInncheck\fP.
  730. X.TP
  731. X\fBquick-save\fP    (boolean, default false)
  732. XWhen set, \fInn\fP will not prompt for a file name when an article is
  733. Xsaved (unless it belongs to a folder).
  734. XInstead it uses the save file specified for the current group in the
  735. Xinit file or the default save file.
  736. X.TP
  737. X\fBre-layout\fP \fIN\fP        (integer, default 0)
  738. XNormally on the menu, \fInn\fP will prefix the subject a number of
  739. X`>'s corresponding to the number of references on the References:
  740. Xline.  The \fBre-layout\fP variable may be set to use a different
  741. Xprefix on the subjects:
  742. X.br
  743. X.nf
  744. X    0:  One `>' per reference is shown (default).
  745. X    1:  A single `>' is shown if the Subject contains Re:.
  746. X    2:  The number of references is shown as `n>'
  747. X    3:  A single Re: is shown.
  748. X.fi
  749. X.TP
  750. X\fBrecord\fP \fIfile\fP    (string, no default)
  751. XSetting this
  752. X.I pseudo
  753. Xvariable will set both the \fBmail-record\fP and the
  754. X\fBnews-record\fP variables to the specified pathname.
  755. X.TP
  756. X\fBrepeat\fP        (boolean, default false)
  757. XWhen set, \fInn\fP will not eliminate duplicated subject lines on
  758. Xmenus (I cannot imagine why anyone should want that, but....)
  759. X.TP
  760. X\fBrepeat-group-query\fP    (boolean, default false)
  761. XWhen set, invoking \fInn\fP with the \fB\-g\fP option will always
  762. Xrepeat the query for a group to enter until you quit explicitly.
  763. X(Same as setting the \fB\-r\fP option permanently).
  764. X.TP
  765. X\fBresponse-check-pause\fP \fIpause\fP    (integer, default 2)
  766. XSpecifies the number of seconds to wait after posting an article to
  767. Xsee whether the action *might* have failed.  Some commands run in the
  768. Xbackground and may thus not have completed during this period, so even
  769. Xwhen \fInn\fP says "Article posted", it may still fail (in which case
  770. Xyou are informed via mail).
  771. X.TP
  772. X\fBresponse-default-answer\fP \fIaction\fP    (string, default "send")
  773. XThe default action to be taken when hitting \fBreturn\fP to the
  774. X"response action" prompt  (abort, edit, send, view, write).  If it is
  775. Xunset, no default action is defined.
  776. X.TP
  777. X\fBretain-seen-status\fP    (boolean, default false)
  778. XNormally, seen articles will just be unread the next time the group is
  779. Xentered (unless they were marked read by \fBauto-junk-seen\fP).  If
  780. X\fBretain-seen-status\fP is set, the seen attribute on the articles
  781. Xwill survive to the next time the group is entered.  (This is not
  782. Xrecommended because it may result in very large select files).
  783. X.TP
  784. X\fBretry-on-error\fP \fItimes\fP    (integer, default 0)
  785. XWhen set, \fInn\fP will try the specified number of \fItimes\fP to
  786. Xopen an article before reporting that the article does not exist
  787. Xanymore.  This may be necessary in some network environments.
  788. X.TP
  789. X\fBsave-counter\fP \fIformat\fP    (string, default "%d")
  790. XThis is the printf-format which \fInn\fP uses to create substitution
  791. Xstring for the trailing * in save file names.  You can set this to
  792. Xmore complex formats if you like, but be sure that it will produce
  793. Xdifferent strings for different numbers.  An alternative format which
  794. Xseems to be popular is ".%02d" .
  795. X.TP
  796. X\fBsave-counter-offset\fP \fIN\fP    (integer, default 0)
  797. XNormally, file names created with the \fIpart.*\fP form will
  798. Xsubstitute the \fI*\fP with successive numbers starting from one.
  799. XSetting this variable will cause these numbers to start from \fIN\fP+1.
  800. X.TP
  801. X\fBsave-report\fP    (boolean, default true)
  802. XWhen set, a message reporting the number of lines written is shown
  803. Xafter saving an article.  Since messages are shown for a few seconds,
  804. Xthis may slow down the saving of many articles (e.g. using the
  805. X.B S*
  806. Xcommand).
  807. X.TP
  808. X\fBscroll-clear-page\fP        (boolean, default true)
  809. XDetermines whether \fInn\fP clears the screen before showing each new
  810. Xpage of an article.
  811. X.TP
  812. X\fBselect-leave-next\fP        (boolean, default false)
  813. XWhen set, you will be asked whether to select articles with the
  814. X\fBleave-next\fP attribute on entry to a group with left over
  815. Xarticles.
  816. X.TP
  817. X\fBselect-on-sender\fP        (boolean, default false)
  818. XSpecifies whether the \fBfind\fP (=) command in article selection mode
  819. Xwill match on the subject or the sender.
  820. X.TP
  821. X\fBshell\fP \fIprogram\fP    (string, default $SHELL)
  822. XThe shell program used to execute shell escapes.
  823. X.TP
  824. X\fBshell-restrictions\fP    (boolean, default false)
  825. XWhen set (in the init file), \fInn\fP will not allow the user to
  826. Xinvoke the shell in any way, including saving on pipes.  It also
  827. Xprevents the user from changing certain variables containing commands.
  828. X.TP
  829. X\fBsilent\fP        (boolean, default false)
  830. XWhen set, \fInn\fP wont print the logo or "No News" if there are no
  831. Xunread articles.  Only useful to set in the init file or with the
  832. X.B \-Q
  833. Xoption.
  834. X.TP
  835. X\fBslow-mode\fP        (boolean, default false)
  836. XWhen set, \fInn\fP will cut down on the screen output to give better
  837. Xresponse time at low speed.
  838. XNormally, \fInn\fP will use standout mode (if possible) to mark
  839. Xselected articles on the menu, but when \fBslow-mode\fP is set, \fInn\fP will
  840. Xjust put an asterisk `*' next to the article identifier on selected
  841. Xarticles.  Also when \fBslow-mode\fP is set \fInn\fP will avoid
  842. Xredrawing the screen in the following cases:  After a \fBgoto-group\fP
  843. Xcommand an empty menu is shown (hit \fBspace\fP to make it appear),
  844. Xand after responding to an article, only the prompt line is shown (use
  845. X^L to redraw the screen).  To avoid redrawing the screen aftern an
  846. Xextended command, set the \fBdelay-redraw\fP variable as well.
  847. X.TP
  848. X\fBslow-speed\fP \fIspeed\fP    (integer, default 1200)
  849. XIf the terminal is running at this baud rate or lower, the \fBon
  850. Xslow\fP (see the section on init files) condition will be true, and
  851. Xthe \fBon fast\fP will be false (and vice-versa).
  852. X.TP
  853. X\fBsort\fP        (boolean, default true)
  854. XWhen set, \fInn\fP will sort articles according to the current
  855. X\fBsort-mode\fP on entry to a group.  Otherwise, articles will be
  856. Xpresented in order of arrival.
  857. X.TP
  858. X\fBsort-mode\fP \fImode\fP    (integer, default 1)
  859. XThe default sort algorithm used to sort the articles on entry to a
  860. Xnews group.  It is a numeric value corresponding to one of the sorting
  861. Xmethods described in connection with the :sort command:
  862. X.br
  863. X    0 \- arrival (no sorting)
  864. X.br
  865. X    1 \- subject (subjects ordered after age of first article)
  866. X.br
  867. X    2 \- lexical (subjects in lexicographical order)
  868. X.br
  869. X    3 \- age (articles ordered after posting date only)
  870. X.br
  871. X    4 \- sender (articles ordered after sender's name)
  872. X.TP
  873. X\fBspell-checker\fP \fIshell-command\fP    (string, default not set)
  874. XWhen set, responses can be checked for spelling mistakes via the
  875. X(i)spell action.  The command to perform the spelling is given the
  876. Xfile containing the full article including header as its only
  877. Xargument.  If the spell checker can fix spelling mistakes, it must
  878. Xapply the changes directly to this file.
  879. X.TP
  880. X\fBsplit\fP        (boolean, default true)
  881. XWhen set, digests will automatically and silently be split into
  882. Xsub-articles which are then handled transparently as normal articles.
  883. XOtherwise, digests are presented as one article (which you can split
  884. Xon demand with the
  885. X.B G
  886. Xcommand).
  887. X.TP
  888. X\fBstop\fP \fIlines\fP    (integer, default not set)
  889. XWhen
  890. X.B stop
  891. Xis set, \fInn\fP will only show the first \fIlines\fP lines of the
  892. Xof each article
  893. Xbefore prompting you to continue.  This is useful on slow terminals and
  894. Xmodem lines to be able to see the first few lines of longer articles
  895. X(and skipping the rest with the
  896. X.B n
  897. Xcommand).
  898. X.TP
  899. X\fBsubject-match-limit\fP \fIlength\fP    (integer, default 20)
  900. XIf one article's subject is identical to the first part of another
  901. Xarticle, the two subjects will still be considered identical if the
  902. Xlength of the shorter subject is at least the limit set by this
  903. Xvariable.  This is mainly used to get articles whose subject line has
  904. Xbeen truncated for some reason (who said notefiles?) aligned with the
  905. Xproper set of articles anyway.
  906. X.TP
  907. X\fBsubject-match-offset\fP \fIoffset\fP    (integer, default 0)
  908. XWhen set to a positive number, that many characters at the beginning
  909. Xof the subject will be ignored when comparing subjects for ordering
  910. Xand equality purposes.
  911. X.TP
  912. X\fBsubject-match-parts\fP    (boolean, default false)
  913. XWhen set, two subjects will be considered equal if they are identical
  914. Xupto the first (differing) digit.  Together with the
  915. X\fBsubject-match-offset\fP variable, this can be used in source groups
  916. Xwhere the subject often has a format like:
  917. X.sp 0.5v
  918. X    vXXXXXX: Name of the package (Part 01/04)
  919. X.sp 0.5v
  920. XSetting \fBsubject-match-offset\fP to 8 and \fBsubject-match-parts\fP
  921. Xto true will make \fInn\fP consider all four parts of the package
  922. Xhaving the same subject (and thus be selectable with `*').
  923. X.sp 0.5
  924. XNotice that changing the \fBsubject-match-\fP... variables manually
  925. Xwill not have an immediate effect.  To reorder the menu, an explicit
  926. X\fB:sort\fP command must be performed.  These variables are mainly
  927. Xintended to be set using the \fB:local\fP command in \fBon entry\fP
  928. Xmacros for source and binary groups (entry macros are evaluated before
  929. Xthe menu is collected and sorted).
  930. X.TP
  931. X\fBsuggest-default-save\fP    (boolean, default true)
  932. XWhen set, \fInn\fP will present the \fBdefault-save-file\fP when
  933. Xprompting for a save file name in a group without a specific save
  934. Xfile.  When not set, no file name is presented, and to use the default
  935. Xsave file, a single + must be specified.
  936. X.TP
  937. X\fBtidy-newsrc\fP        (boolean, default false)
  938. XWhen set, \fInn\fP will automatically remove lines from .newsrc which
  939. Xrepresent groups not found in the active file or unsubscribed groups
  940. Xif \fBkeep-unsubscribed\fP is not set.
  941. X.TP
  942. X\fBtime\fP        (boolean, default true)
  943. XWhen set, \fInn\fP will show the current time in the prompt line.
  944. XThis is useful on systems without a
  945. X.I sysline (1)
  946. Xutility.
  947. X.TP
  948. X\fBunshar-command\fP \fIshell-command\fP    (string, default "/bin/sh")
  949. XThis is the command which is invoked by the \fBunshar\fP command.
  950. X.TP
  951. X\fBunshar-header-file\fP \fIfile\fP    (string, default "Unshar.Headers")
  952. XThe name of the file in which the header and initial text of articles
  953. Xunpacked with the \fB:unshar\fP command is saved.  Unless the file name
  954. Xstarts with a `/', the file will be created in the same directory as
  955. Xthe unpacked files.  The information is not saved if this variable is
  956. Xnot set.  Setting it to "Unshar.Result" will cause the headers and the
  957. Xresults from the unpacking process to be merged in a meaningful way
  958. X(unless \fBmmdf-format\fP is set).
  959. X.TP
  960. X\fBunsubscribe-mark-read\fP    (boolean, default true)
  961. XWhen set, unsubscribing to a group will automatically mark all current
  962. Xarticles read; this is recommended to keep the size of .newsrc down.
  963. XOtherwise, unread articles in the unsubscribe groups are kept in
  964. X.newsrc.  If \fBkeep-unsubscribed\fP is false, this variable has no
  965. Xeffect.
  966. X.TP
  967. X\fBupdate-frequency\fP        (integer, default 1)
  968. XSpecifies how many changes need to be done to the .newsrc or select
  969. Xfiles before they are written back to disk.  The default setting
  970. Xcausese .newsrc to be updated every time a group has been read.
  971. X.TP
  972. X\fBuse-selections\fP        (boolean, default true)
  973. XWhen set, \fInn\fP uses the selections and other article attributes
  974. Xsaved last time \fInn\fP was used.  If not set, \fInn\fP ignores the
  975. Xselect file.
  976. X.TP
  977. X\fBvisible-bell\fP    (boolean, default true)
  978. XWhen set, \fInn\fP will flash the screeen instead of "ringing the
  979. Xbell" if the visible bell (flash) capability is defined in the
  980. Xtermcap/terminfo database.
  981. X.TP
  982. X\fBwindow\fP \fIsize\fP    (integer, default not set)
  983. XWhen set, \fInn\fP will reserve the last \fIsize\fP lines of the menu
  984. Xscreen for a preview window.  If not set, \fInn\fP will clear the
  985. Xscreen to preview an article if there are less than \fBmin-window\fP
  986. Xlines at the
  987. Xbottom of the screen.  As a side effect, it can also be used to reduce
  988. Xthe size of the menus, which may be useful on slow terminals.
  989. X.TP
  990. X\fBword-key\fP \fIkey\fP    (key, default ^W)
  991. XThe key which erases the last input component or word
  992. Xwhen \fInn\fP is prompting for a string, e.g. the last name in a path
  993. Xname.
  994. X.TP
  995. X\fBwrap-header-margin\fP \fIsize\fP    (integer, default 6)
  996. XWhen set (non-negative), the customized header fields specified in
  997. X\fBheader-lines\fP will be split across several lines if they don't
  998. Xfit on one line.  When \fIsize\fP is greater than zero, lines will be
  999. Xsplit at the first space occurring in the last \fIsize\fP columns of
  1000. Xthe line.  If not set (or negative), long header lines will be
  1001. Xtruncated if they don't fit on a single line.
  1002. X.\" ENDPART C
  1003. END_OF_FILE
  1004.   if test 41683 -ne `wc -c <'man/nn.1.C'`; then
  1005.     echo shar: \"'man/nn.1.C'\" unpacked with wrong size!
  1006.   fi
  1007.   # end of 'man/nn.1.C'
  1008. fi
  1009. if test -f 'pack_name.c' -a "${1}" != "-c" ; then 
  1010.   echo shar: Will not clobber existing file \"'pack_name.c'\"
  1011. else
  1012.   echo shar: Extracting \"'pack_name.c'\" \(10290 characters\)
  1013.   sed "s/^X//" >'pack_name.c' <<'END_OF_FILE'
  1014. X/*
  1015. X *    (c) Copyright 1990, Kim Fabricius Storm.  All rights reserved.
  1016. X *
  1017. X *    Pack sender's name into something sensible, return in packed:
  1018. X *     pack_name(packed, name, length)
  1019. X *
  1020. X */
  1021. X
  1022. X#include "config.h"
  1023. X
  1024. X/* #define NAME_TEST    /* Never define this ! */
  1025. X
  1026. X#define    SEP_DOT        0    /* . */
  1027. X#define    SEP_PERCENT    1    /* % */
  1028. X#define    SEP_SCORE    2    /* _ */
  1029. X#define    SEP_AMPERSAND    3    /* @ */
  1030. X#define    SEP_BANG    4    /* ! */
  1031. X#define    SEP_MAXIMUM    5
  1032. X
  1033. X
  1034. X#define CL_OK        0x0100        /* letter or digit */
  1035. X#define CL_SPACE    0x0200        /* cvt to space */
  1036. X#define CL_IGNORE    0x0400        /* ignore */
  1037. X#define CL_RANGE(c)    0x0800+c    /* space range, end with c */
  1038. X#define CL_HYPHEN    0x1000        /* convert to - */
  1039. X#define CL_STOP        0x2000        /* discard rest of name */
  1040. X#define    CL_SEP        | 0x4000 +        /* address separator */
  1041. X
  1042. X#define    IS_OK(c)    (Class[c] & CL_OK)
  1043. X#define IS_SPACE(c)    (Class[c] & CL_SPACE)
  1044. X#define IGNORE(c)    (c & 0x80 || Class[c] & CL_IGNORE)
  1045. X#define BEGIN_RANGE(c)    (Class[c] & CL_RANGE(0))
  1046. X#define END_RANGE(c)    (Class[c] & 0xff)
  1047. X#define IS_HYPHEN(c)    (Class[c] & CL_HYPHEN)
  1048. X#define IS_STOP(c)    (Class[c] & CL_STOP)
  1049. X#define    IS_SEPARATOR(c)    (Class[c] & (0 CL_SEP 0))
  1050. X
  1051. Xstatic short Class[128] = {
  1052. X    /* NUL */        CL_STOP ,
  1053. X    /* SOH */        CL_IGNORE ,
  1054. X    /* STX */        CL_IGNORE ,
  1055. X    /* ETX */        CL_IGNORE ,
  1056. X    /* EOT */        CL_IGNORE ,
  1057. X    /* ENQ */        CL_IGNORE ,
  1058. X    /* ACK */        CL_IGNORE ,
  1059. X    /* BEL */        CL_IGNORE ,
  1060. X    /* BS  */        CL_IGNORE ,
  1061. X    /* TAB */        CL_SPACE ,
  1062. X    /* NL  */        CL_IGNORE ,
  1063. X    /* VT  */        CL_IGNORE ,
  1064. X    /* FF  */        CL_IGNORE ,
  1065. X    /* CR  */        CL_IGNORE ,
  1066. X    /* SO  */        CL_IGNORE ,
  1067. X    /* SI  */        CL_IGNORE ,
  1068. X    /* DLE */        CL_IGNORE ,
  1069. X    /* DC1 */        CL_IGNORE ,
  1070. X    /* DC2 */        CL_IGNORE ,
  1071. X    /* DC3 */        CL_IGNORE ,
  1072. X    /* DC4 */        CL_IGNORE ,
  1073. X    /* NAK */        CL_IGNORE ,
  1074. X    /* SYN */        CL_IGNORE ,
  1075. X    /* ETB */        CL_IGNORE ,
  1076. X    /* CAN */        CL_IGNORE ,
  1077. X    /* EM  */        CL_IGNORE ,
  1078. X    /* SUB */        CL_IGNORE ,
  1079. X    /* ESC */        CL_IGNORE ,
  1080. X    /* FS  */        CL_IGNORE ,
  1081. X    /* GS  */        CL_IGNORE ,
  1082. X    /* RS  */        CL_IGNORE ,
  1083. X    /* US  */        CL_IGNORE ,
  1084. X
  1085. X    /* space */        CL_SPACE ,
  1086. X    /*   !   */        CL_SPACE CL_SEP SEP_BANG,
  1087. X    /*   "   */        CL_RANGE( '"' ) ,
  1088. X    /*   #   */        CL_OK ,
  1089. X    /*   $   */        CL_OK ,
  1090. X    /*   %   */        CL_OK CL_SEP SEP_PERCENT,
  1091. X    /*   &   */        CL_OK ,
  1092. X    /*   '   */        CL_OK ,
  1093. X    /*   (   */        CL_RANGE( ')' ) ,
  1094. X    /*   )   */        CL_IGNORE ,
  1095. X    /*   *   */        CL_HYPHEN ,
  1096. X    /*   +   */        CL_HYPHEN ,
  1097. X    /*   ,   */        CL_STOP ,
  1098. X    /*   -   */        CL_HYPHEN ,
  1099. X    /*   .   */        CL_SPACE CL_SEP SEP_DOT,
  1100. X    /*   /   */        CL_OK ,
  1101. X    /*   0   */        CL_OK ,
  1102. X    /*   1   */        CL_OK ,
  1103. X    /*   2   */        CL_OK ,
  1104. X    /*   3   */        CL_OK ,
  1105. X    /*   4   */        CL_OK ,
  1106. X    /*   5   */        CL_OK ,
  1107. X    /*   6   */        CL_OK ,
  1108. X    /*   7   */        CL_OK ,
  1109. X    /*   8   */        CL_OK ,
  1110. X    /*   9   */        CL_OK ,
  1111. X    /*   :   */        CL_IGNORE ,
  1112. X    /*   ;   */        CL_STOP ,
  1113. X    /*   <   */        CL_IGNORE ,
  1114. X    /*   =   */        CL_HYPHEN ,
  1115. X    /*   >   */        CL_IGNORE ,
  1116. X    /*   ?   */        CL_IGNORE ,
  1117. X    /*   @   */        CL_OK CL_SEP SEP_AMPERSAND,
  1118. X    /*   A   */        CL_OK ,
  1119. X    /*   B   */        CL_OK ,
  1120. X    /*   C   */        CL_OK ,
  1121. X    /*   D   */        CL_OK ,
  1122. X    /*   E   */        CL_OK ,
  1123. X    /*   F   */        CL_OK ,
  1124. X    /*   G   */        CL_OK ,
  1125. X    /*   H   */        CL_OK ,
  1126. X    /*   I   */        CL_OK ,
  1127. X    /*   J   */        CL_OK ,
  1128. X    /*   K   */        CL_OK ,
  1129. X    /*   L   */        CL_OK ,
  1130. X    /*   M   */        CL_OK ,
  1131. X    /*   N   */        CL_OK ,
  1132. X    /*   O   */        CL_OK ,
  1133. X    /*   P   */        CL_OK ,
  1134. X    /*   Q   */        CL_OK ,
  1135. X    /*   R   */        CL_OK ,
  1136. X    /*   S   */        CL_OK ,
  1137. X    /*   T   */        CL_OK ,
  1138. X    /*   U   */        CL_OK ,
  1139. X    /*   V   */        CL_OK ,
  1140. X    /*   W   */        CL_OK ,
  1141. X    /*   X   */        CL_OK ,
  1142. X    /*   Y   */        CL_OK ,
  1143. X    /*   Z   */        CL_OK ,
  1144. X    /*   [   */        CL_OK ,
  1145. X    /*   \   */        CL_OK ,
  1146. X    /*   ]   */        CL_OK ,
  1147. X    /*   ^   */        CL_IGNORE ,
  1148. X    /*   _   */        CL_SPACE CL_SEP SEP_SCORE,
  1149. X    /*   `   */        CL_IGNORE ,
  1150. X    /*   a   */        CL_OK ,
  1151. X    /*   b   */        CL_OK ,
  1152. X    /*   c   */        CL_OK ,
  1153. X    /*   d   */        CL_OK ,
  1154. X    /*   e   */        CL_OK ,
  1155. X    /*   f   */        CL_OK ,
  1156. X    /*   g   */        CL_OK ,
  1157. X    /*   h   */        CL_OK ,
  1158. X    /*   i   */        CL_OK ,
  1159. X    /*   j   */        CL_OK ,
  1160. X    /*   k   */        CL_OK ,
  1161. X    /*   l   */        CL_OK ,
  1162. X    /*   m   */        CL_OK ,
  1163. X    /*   n   */        CL_OK ,
  1164. X    /*   o   */        CL_OK ,
  1165. X    /*   p   */        CL_OK ,
  1166. X    /*   q   */        CL_OK ,
  1167. X    /*   r   */        CL_OK ,
  1168. X    /*   s   */        CL_OK ,
  1169. X    /*   t   */        CL_OK ,
  1170. X    /*   u   */        CL_OK ,
  1171. X    /*   v   */        CL_OK ,
  1172. X    /*   w   */        CL_OK ,
  1173. X    /*   x   */        CL_OK ,
  1174. X    /*   y   */        CL_OK ,
  1175. X    /*   z   */        CL_OK ,
  1176. X    /*   {   */        CL_OK ,
  1177. X    /*   |   */        CL_OK ,
  1178. X    /*   }   */        CL_OK ,
  1179. X    /*   ~   */        CL_HYPHEN ,
  1180. X    /*  DEL  */        CL_IGNORE
  1181. X} ;
  1182. X
  1183. X
  1184. Xpack_name(dest, source, length)
  1185. Xchar *dest, *source;
  1186. Xint length;
  1187. X{
  1188. X    register char *p, *q, *r, c;
  1189. X    register int n;
  1190. X    char namebuf[129], *name;
  1191. X    char *maxq;
  1192. X    int lname, lfirst, lmiddle, llast, sep, i;
  1193. X    int drop_space, prev_space;
  1194. X    char *separator[SEP_MAXIMUM];
  1195. X
  1196. X    dest[0] = NUL;
  1197. X
  1198. X    if (source == NULL || source[0] == NUL)
  1199. X    return 0;
  1200. X
  1201. X    p = source, q = namebuf, n = 0;
  1202. X    maxq = namebuf + sizeof namebuf - 1;
  1203. X
  1204. Xnew_partition:
  1205. X    for (i = SEP_MAXIMUM; --i >= 0; separator[i] = NULL);
  1206. X
  1207. X    while ( c = *p++ ) {
  1208. X    if (c == '<') {
  1209. X        while (q > namebuf && q[-1] == SP) q--;
  1210. X        if (q == namebuf) continue;
  1211. X        break;
  1212. X    }
  1213. X    if (IGNORE(c)) continue;
  1214. X    if (q == namebuf && IS_SPACE(c)) continue;
  1215. X    if (c == '(') {
  1216. X        if (*p == ')') {
  1217. X        p++;
  1218. X        continue;
  1219. X        }
  1220. X        if (n++ == 0) {
  1221. X        q = namebuf;
  1222. X        goto new_partition;
  1223. X        }
  1224. X        continue;
  1225. X    }
  1226. X    if (c == ')') {
  1227. X        if (--n == 0) break;
  1228. X        continue;
  1229. X    }
  1230. X    if (n > 1) continue;
  1231. X    if (q >= maxq) break;
  1232. X    *q++ = c;
  1233. X    if (IS_SEPARATOR(c)) {
  1234. X        switch (sep = (Class[c] & 0xff)) {
  1235. X
  1236. X         case SEP_DOT:
  1237. X        if (separator[SEP_AMPERSAND] && q - namebuf <= length)
  1238. X            break;
  1239. X        continue;
  1240. X
  1241. X         case SEP_BANG:
  1242. X        if (separator[SEP_AMPERSAND]) continue;
  1243. X        break;
  1244. X
  1245. X         default:
  1246. X        if (separator[sep]) continue;
  1247. X        break;
  1248. X        }
  1249. X
  1250. X        separator[sep] = q - 1;
  1251. X    }
  1252. X    }
  1253. X
  1254. X    *q = NUL;
  1255. X
  1256. X    if (namebuf[0] == NUL) return 0;
  1257. X
  1258. X    name = namebuf;
  1259. X
  1260. X    if (name[0] == '"') {
  1261. X    name++;
  1262. X    if (q[-1] == '"') *--q = NUL;
  1263. X    }
  1264. X
  1265. X    if (q - name <= length) goto name_ok;
  1266. X
  1267. X    /* sorry for the many goto's -- the 3B2 C compiler does not */
  1268. X    /* make correct code for complicated logical expressions!!  */
  1269. X    /* not even without -O                    */
  1270. X
  1271. X    /* We must pack the name to make it fit */
  1272. X
  1273. X    /* Name_of_person%... -> Name_of_person */
  1274. X
  1275. X    if (r = separator[SEP_PERCENT]) {
  1276. X    if (!(q = separator[SEP_SCORE]) || q > r )
  1277. X        goto no_percent;
  1278. X    if ((q = separator[SEP_AMPERSAND]) && q < r)
  1279. X        goto no_percent;
  1280. X    if ((q = separator[SEP_BANG]) && q < r)
  1281. X        goto no_percent;
  1282. X    *r = NUL;
  1283. X    goto parse_name;
  1284. X    }
  1285. X
  1286. X no_percent:
  1287. X
  1288. X    /* name@site.domain -> name@site */
  1289. X
  1290. X   if (r = separator[SEP_AMPERSAND]) {
  1291. X
  1292. X       if ((q = separator[SEP_PERCENT]) && q < r) {
  1293. X       *r = NUL;
  1294. X       if (r - name <= length) goto name_ok;
  1295. X
  1296. X       *q = NUL;
  1297. X
  1298. X       if (((p = separator[SEP_BANG]) && p < q)
  1299. X         || ((p = strrchr(name, '!')) && p < q)) {
  1300. X           name = p + 1;
  1301. X       }
  1302. X
  1303. X       if (strchr(name, '.'))
  1304. X           goto parse_name;
  1305. X
  1306. X       goto name_ok;
  1307. X       }
  1308. X
  1309. X       if (q = separator[SEP_DOT]) {
  1310. X       *q = NUL;
  1311. X       goto name_ok;
  1312. X       }
  1313. X
  1314. X       *r = NUL;
  1315. X       if (r - name <= length) goto name_ok;
  1316. X
  1317. X       if ((q = separator[SEP_BANG]) && q < r) {
  1318. X       name = q + 1;
  1319. X       goto name_ok;
  1320. X       }
  1321. X
  1322. X#ifdef NOTDEF
  1323. X       if (strchr(name, '!') == NULL)
  1324. X       goto parse_name; /* take the chance ... */
  1325. X#endif
  1326. X    goto name_ok;    /* can't do it any better */
  1327. X    }
  1328. X
  1329. X
  1330. X    /* Phase 1: Normalization (remove superfluous characters) */
  1331. X
  1332. X parse_name:
  1333. X
  1334. X    for (p = name, lname = 0, prev_space = 0; c = *p; p++) {
  1335. X
  1336. X/*
  1337. X    if (IGNORE(c)) {
  1338. X        *p = TAB;
  1339. X        if (p == name) name++;
  1340. X        continue;
  1341. X    }
  1342. X*/
  1343. X
  1344. X    if (IS_OK(c)) {
  1345. X        lname++;
  1346. X        prev_space = 0;
  1347. X        continue;
  1348. X    }
  1349. X
  1350. X    if (IS_HYPHEN(c)) {
  1351. X        if (p == name) {
  1352. X        name++;
  1353. X        continue;
  1354. X        }
  1355. X        if (prev_space)
  1356. X        *p = TAB;
  1357. X        else {
  1358. X        *p = '-';
  1359. X        lname++;
  1360. X        }
  1361. X        continue;
  1362. X    }
  1363. X
  1364. X    if (BEGIN_RANGE(c)) {
  1365. X
  1366. X        if (p == name) {
  1367. X        name++;
  1368. X        continue;
  1369. X        }
  1370. X
  1371. X        c = END_RANGE(c);
  1372. X        for (q = p+1; *q && *q != c; q++);
  1373. X        if (*q) {
  1374. X        if (p[-1] != ' ') lname++;
  1375. X        while (p <= q) *p++ = ' ';
  1376. X        p--;
  1377. X        prev_space++;
  1378. X        continue;
  1379. X        }
  1380. X        c = ' ';
  1381. X    }
  1382. X
  1383. X    if (IS_SPACE(c)) {
  1384. X        *p = ' ';
  1385. X        if (p == name)
  1386. X        name++;
  1387. X        else
  1388. X        if (!prev_space) {
  1389. X            lname++;
  1390. X            prev_space++;
  1391. X        }
  1392. X        continue;
  1393. X    }
  1394. X
  1395. X    if (IS_STOP(c)) {
  1396. X        *p = NUL;
  1397. X        break;
  1398. X    }
  1399. X    }
  1400. X drop_last_name:
  1401. X    while (p > name && (*--p == ' ' || *p == TAB)) *p = NUL;
  1402. X
  1403. X    if (lname < length) goto name_ok;
  1404. X
  1405. X
  1406. X    /* Phase 2: Reduce middle names */
  1407. X
  1408. X    for (r = p, llast = 0; r > name && *r != ' '; r--)
  1409. X    if (*r != TAB) llast++;
  1410. X
  1411. X    /* r points to space before last name */
  1412. X
  1413. X    if (strncmp(r, " Jr", 3) == 0 || strncmp(r, " II", 3) == 0) {
  1414. X    p = r+1;
  1415. X    lname -= llast;
  1416. X    goto drop_last_name;
  1417. X    }
  1418. X
  1419. X    if (r == name) goto phase6;    /* only last name */
  1420. X
  1421. X    for (q = name, lfirst = 0; *q && *q != ' '; q++)
  1422. X    if (*q != TAB) lfirst++;
  1423. X
  1424. X    /* q points at space after first name */
  1425. X
  1426. X    for (p = q, lmiddle = 0; p < r; ) {
  1427. X    /* find next middle name */
  1428. X    while (p < r && (*p == ' ' || *p == TAB)) p++;
  1429. X
  1430. X    if (p >= r) break; /* found last name */
  1431. X
  1432. X    p++; /* skip first char of middle name */
  1433. X    for (;*p != ' '; p++) { /* remove rest */
  1434. X        if (*p == TAB) continue;
  1435. X        *p = TAB;
  1436. X        lname--;
  1437. X    }
  1438. X    lmiddle += 2;    /* initial + space */
  1439. X    }
  1440. X
  1441. X    if (lname < length) goto name_ok;
  1442. X
  1443. X    /* If removing middle names is not enough, but reducing first name instead is, do it that way */
  1444. X
  1445. X    if (lname - lmiddle >= length && lname - lfirst + 1 < length) goto phase4;
  1446. X
  1447. X
  1448. X    /* Phase 3: Remove middle names */
  1449. X
  1450. X    for (p = q; p < r; p++) {
  1451. X    if (*p == TAB) continue;
  1452. X    if (*p == ' ') continue;
  1453. X    *p = TAB;
  1454. X    lname -= 2;
  1455. X    }
  1456. X
  1457. X    if (lname < length) goto name_ok;
  1458. X
  1459. X
  1460. X    /* Phase 4: Reduce first name */
  1461. X
  1462. X phase4:
  1463. X    for (p = name+1; p < q; p++) {
  1464. X    if (*p == TAB) continue;
  1465. X    if (*p == ' ') continue;
  1466. X    if (*p == '-' && (p + 1) < q) {
  1467. X        p++;
  1468. X        continue;
  1469. X    }
  1470. X    *p = TAB;
  1471. X    lname--;
  1472. X    }
  1473. X
  1474. X    if (lname < length) goto name_ok;
  1475. X
  1476. X    /* Phase 5: Remove first name */
  1477. X
  1478. X    name = r+1;
  1479. X    lname--;
  1480. X
  1481. X    if (lname < length) goto name_ok;
  1482. X
  1483. X    /* Phase 6: Cut last name */
  1484. X phase6:
  1485. X    goto name_ok;
  1486. X
  1487. X name_ok:
  1488. X
  1489. X    q = dest;
  1490. X    maxq = q + length;
  1491. X
  1492. X    drop_space = 1;
  1493. X
  1494. X    for (p = name; *p && q < maxq ; p++) {
  1495. X    if (*p == TAB) continue;
  1496. X
  1497. X    if ( *p == ' ' ) {
  1498. X        if (!drop_space) {
  1499. X        drop_space = 1;
  1500. X        *q++ = ' ';
  1501. X        }
  1502. X        continue;
  1503. X    }
  1504. X    drop_space = 0;
  1505. X    *q++ = *p;
  1506. X    }
  1507. X
  1508. X    *q = NUL;
  1509. X
  1510. X    return strlen(dest);
  1511. X}
  1512. X
  1513. X#ifdef NAME_TEST
  1514. X
  1515. Xmain() {
  1516. X    char in[512], out[512];
  1517. X
  1518. X    while (gets(in)) {
  1519. X    printf("'%s' -> (%d) ", in, pack_name(out,in,NAME_LENGTH));
  1520. X    puts(out);
  1521. X    }
  1522. X    exit(0);
  1523. X}
  1524. X
  1525. X#endif
  1526. END_OF_FILE
  1527.   if test 10290 -ne `wc -c <'pack_name.c'`; then
  1528.     echo shar: \"'pack_name.c'\" unpacked with wrong size!
  1529.   fi
  1530.   # end of 'pack_name.c'
  1531. fi
  1532. echo shar: End of archive 3 \(of 22\).
  1533. cp /dev/null ark3isdone
  1534. MISSING=""
  1535. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ; do
  1536.     if test ! -f ark${I}isdone ; then
  1537.     MISSING="${MISSING} ${I}"
  1538.     fi
  1539. done
  1540. if test "${MISSING}" = "" ; then
  1541.     echo You have unpacked all 22 archives.
  1542.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1543. else
  1544.     echo You still must unpack the following archives:
  1545.     echo "        " ${MISSING}
  1546. fi
  1547. exit 0
  1548.  
  1549. exit 0 # Just in case...
  1550.